Notions avancées

L'arborescence

Considérations générales

Par la pratique, nous savons que la partie la plus à droite d'un FQDN est régie par des usages stricts. En effet, cette partie représente un « Top Level Domain », Domaine de premier niveau en français. Il en existe un certain nombre, ils sont définis par l'ICANN (Internet Corporation for Assigned Names and Numbers). Un article bien documenté sur Wikipédia vous donnera plus de détails.

A l'intérieur de chaque TLD, il est possible pour toute entreprise, association, personne morale ou physique, d'enregistrer un nom de domaine. Il suffit d'en faire la demande auprès d'un « registar », bureau d'enregistrement en français. Voir encore Wikipédia pour plus de détails. Le registar vérifiera l'unicité du domaine demandé, les éventuelles conditions d'obtention et se chargera des démarches pour l'enregistrement du domaine. Le cout de l'opération varie beaucoup en fonction du registar choisi.

Nous allons voir l'influence qu'a cette opération sur la structure du DNS.

La structure de DNS

Root-Servers

Nous avons au départ une série de serveurs DNS appelés root-servers. Nous en trouvons la liste et leur implantation dans le monde sur le site root-servers.org.

Ces serveurs ne sont pas récursifs, ne savent pas résoudre les FQDN, mais savent dire quels serveurs sont spécialisés dans les divers TLDs.

Serveurs TLD

Ces serveurs DNS ne sont pas non plus récursifs, mais pour un TLD donné, savent dire quels sont les serveurs DNS qui gèrent un domaine appartenant à ce TLD.

C'est à ce niveau que le registar intervient techniquement. Une fois le nom de domaine enregistré, le demandeur doit fournir l'adresse d'au moins un serveur DNS qui saura résoudre les noms dans le domaine en question et ce DNS doit être enregistré sur les serveurs du TLD choisi.

Manip.

Mais une petite expérience vaut mieux qu'un long discours. Nous allons utiliser notre outil host pour chercher à résoudre le FQDN www.education.gouv.fr, non plus en posant la question à notre serveur DNS récursif, mais en partant de la source, à savoir un root-server : 192.58.128.30, en utilisant la commande comme ceci :

host -v www.education.gouv.fr 192.58.128.30

  • le -v indique que l'on veut des détails (verbose) ;
  • l'adresse IP en dernier argument indique quel serveur DNS nous voulons interroger.
$ host -v www.education.gouv.fr 192.58.128.30
Server: j.root-servers.net
Address: 192.58.128.30

Query about www.education.gouv.fr for record types A
Trying www.education.gouv.fr ...
Query failed, 0 answers, status: no error
Authority information:
fr                      172800    IN    NS    E.EXT.NIC.fr
fr                      172800    IN    NS    C.NIC.fr
fr                      172800    IN    NS    B.EXT.NIC.fr
fr                      172800    IN    NS    F.EXT.NIC.fr
fr                      172800    IN    NS    A.NIC.fr
fr                      172800    IN    NS    E.NIC.fr
fr                      172800    IN    NS    D.EXT.NIC.fr
fr                      172800    IN    NS    G.EXT.NIC.fr
Additional information:
A.NIC.fr                172800    IN    A    192.93.0.129
A.NIC.fr                172800    IN    AAAA    2001:660:3005:3:0:0:1:1
B.EXT.NIC.fr            172800    IN    A    192.228.90.21
C.NIC.fr                172800    IN    A    192.134.0.129
C.NIC.fr                172800    IN    AAAA    2001:660:3006:4:0:0:1:1
D.EXT.NIC.fr            172800    IN    A    204.152.184.85
D.EXT.NIC.fr            172800    IN    AAAA    2001:4F8:0:2:0:0:0:8
E.EXT.NIC.fr            172800    IN    A    193.176.144.6
E.NIC.fr                172800    IN    A    194.57.253.1
F.EXT.NIC.fr            172800    IN    A    194.146.106.46
G.EXT.NIC.fr            172800    IN    A    204.61.216.39
www.education.gouv.fr A record currently not present at j.root-servers.net

J-root-servers.net ne répond pas directement, comme nous pouvions nous en douter. En revanche, il nous envoie la liste des serveurs DNS compétants dans le TLD fr. Reposons donc la question au premier de la liste : a.nic.fr :

$ host -v www.education.gouv.fr 192.93.0.129
Server: a.nic.fr
Address: 192.93.0.129

Query about www.education.gouv.fr for record types A
Trying www.education.gouv.fr ...
Query failed, 0 answers, status: no error
Authority information:
education.gouv.fr       172800    IN    NS    ns4.atos.net
education.gouv.fr       172800    IN    NS    ns3.atos.net
www.education.gouv.fr A record currently not present at a.nic.fr

Cette réponse nous apprend deux choses :

  • gouv.fr est un « domaine sectoriel », géré par l'afnic, et donc directement par les serveurs .NIC.FR et il en va de même pour des « domaines descriptifs définis dans le .fr ;
  • pour résoudre des noms dans le domaine education.gouv.fr, il faut poser la question à ns4.atos.net ou à ns3.atos.net.

Malheureusement, nous ne disposons pas cette fois-ci des « Additionnal information » et n'avons pas l'adresse IP de ces serveurs. Il nous reste à repartir du début avec une nouvelle requête:

$ host -v ns4.atos.net 192.58.128.30
Server: j.root-servers.net
Address: 192.58.128.30

Query about ns4.atos.net for record types A
Trying ns4.atos.net ...
Query failed, 0 answers, status: no error
Authority information:
net                     172800    IN    NS    J.GTLD-SERVERS.net
net                     172800    IN    NS    K.GTLD-SERVERS.net
net                     172800    IN    NS    G.GTLD-SERVERS.net
net                     172800    IN    NS    M.GTLD-SERVERS.net
net                     172800    IN    NS    C.GTLD-SERVERS.net
net                     172800    IN    NS    H.GTLD-SERVERS.net
net                     172800    IN    NS    D.GTLD-SERVERS.net
net                     172800    IN    NS    B.GTLD-SERVERS.net
net                     172800    IN    NS    L.GTLD-SERVERS.net
net                     172800    IN    NS    A.GTLD-SERVERS.net
net                     172800    IN    NS    F.GTLD-SERVERS.net
net                     172800    IN    NS    E.GTLD-SERVERS.net
net                     172800    IN    NS    I.GTLD-SERVERS.net
Additional information:
A.GTLD-SERVERS.net      172800    IN    A    192.5.6.30
A.GTLD-SERVERS.net      172800    IN    AAAA    2001:503:A83E:0:0:0:2:30
B.GTLD-SERVERS.net      172800    IN    A    192.33.14.30
B.GTLD-SERVERS.net      172800    IN    AAAA    2001:503:231D:0:0:0:2:30
C.GTLD-SERVERS.net      172800    IN    A    192.26.92.30
D.GTLD-SERVERS.net      172800    IN    A    192.31.80.30
E.GTLD-SERVERS.net      172800    IN    A    192.12.94.30
F.GTLD-SERVERS.net      172800    IN    A    192.35.51.30http://www.google.fr/
G.GTLD-SERVERS.net      172800    IN    A    192.42.93.30
H.GTLD-SERVERS.net      172800    IN    A    192.54.112.30
I.GTLD-SERVERS.net      172800    IN    A    192.43.172.30
J.GTLD-SERVERS.net      172800    IN    A    192.48.79.30
K.GTLD-SERVERS.net      172800    IN    A    192.52.178.30
L.GTLD-SERVERS.net      172800    IN    A    192.41.162.30
ns4.atos.net A record currently not present at j.root-servers.net

A peine plus avancés, interrogeons alors a.gtld-servers.net :

$ host -v ns4.atos.net 192.5.6.30
Server: a.gtld-servers.net
Address: 192.5.6.30

Query about ns4.atos.net for record types A
Trying ns4.atos.net ...
Query done, 1 answer, status: no error
The following answer is not authoritative:
ns4.atos.net            172800    IN    A    193.56.46.248
Authority information:
atos.net                172800    IN    NS    ns3.atos.net
atos.net                172800    IN    NS    ns4.atos.net
Additional information:
ns3.atos.net            172800    IN    A    160.92.121.6
ns4.atos.net            172800    IN    A    193.56.46.248

Nous n'avons jamais été aussi proches de la solution finale. Une dernière question à ns4.atos.net dont nous connaissons désormais l'adresse IP :

$ host  www.education.gouv.fr 193.56.46.248
www.education.gouv.fr    CNAME    front.webedu.men.aw.atosorigin.com
front.webedu.men.aw.atosorigin.com    A    160.92.130.142

Et voilà le travail. Nous pouvons constater à quel point il peut être fastidieux et nous nous félicitons de disposer d'un bon gros serveur DNS récursif, qui fait tout ce travail à notre place. Car c'est exactement de cette manière qu'il s'y prend pour nous obtenir la réponse.

Les renseignements qu'il glane en effectuant cette recherche, il va les garder en mémoire et s'en resservira pour d'éventuelles résolutions futures. Nous verrons que pour cette raison, les serveurs « qui font autorité » indiquent une durée de validité pour les informations qu'ils donnent. Ainsi, les serveurs récursifs devront rafraichir le contenu de leur cache en fonction de dette durée de validité.

Dernière modification:: le 03/03/2009 à 19:48
   
 
Cette création est mise à disposition sous un contrat Creative Commons. Creative Commons License